#include "../im.h"

void print_hello()
{
    std::cout << "Hello, world!\n";
}

void print_hello2()
{
    std::this_thread::sleep_for(std::chrono::seconds(2));
    std::cout << "Hello, world 2!\n";
}

void print_hello3()
{
    for (size_t i = 0; i < 10; i++)
    {
        std::cout << "Hello, world 3!\n";
    }
}

void print_hello4()
{
    for (size_t i = 0; i < 10; i++)
    {
        std::cout << "Hello, world 4!\n";
    }
}

int main()
{
    boost::asio::io_context io;

    // 使用 boost::asio::post 在 io_context 中异步执行 print_hello 函数
    boost::asio::post(io, print_hello);
    boost::asio::post(io, print_hello2);
    boost::asio::post(io, print_hello3);
    boost::asio::post(io, print_hello4);

    // // 创建两个线程，每个线程都运行 io_context::run 函数
    // std::thread t1([&io]
    //                { io.run(); });
    // std::thread t2([&io]
    //                { io.run(); });

    // // 等待两个线程完成
    // t1.join();
    // t2.join();

    io.run();

    return 0;
}